Java.lang প্যাকেজটি Java এর অন্যতম গুরুত্বপূর্ণ প্যাকেজ, যা Java প্রোগ্রামিং ভাষার মৌলিক বৈশিষ্ট্যগুলি এবং ক্লাসগুলির সমর্থন প্রদান করে। এই প্যাকেজের অন্তর্গত Wrapper ক্লাসসমূহ হল এমন ক্লাস যা প্রিমিটিভ ডেটা টাইপগুলির (যেমন int, double, boolean, char) জন্য অবজেক্ট তৈরি করতে ব্যবহৃত হয়। Java তে প্রিমিটিভ ডেটা টাইপগুলি মূলত অবজেক্ট নয়, কিন্তু যদি আমাদের ওই ডেটা টাইপগুলিকে অবজেক্ট হিসেবে ব্যবহার করতে হয় (যেমন জেনেরিক্স বা কালেকশনে), তখন Wrapper ক্লাস ব্যবহার করা হয়।
Wrapper ক্লাসগুলি কী এবং কেন ব্যবহৃত হয়?
Java-তে Wrapper ক্লাস প্রিমিটিভ ডেটা টাইপের জন্য অবজেক্ট তৈরি করতে ব্যবহৃত হয়, যা তাদের সাথে অপারেশন করা সহজ করে এবং বিভিন্ন API-তে অবজেক্ট হিসেবে ব্যবহৃত হয়। এটি প্রিমিটিভ টাইপ এবং তাদের সমতুল্য ক্লাসের মধ্যে অটো-বক্সিং এবং আনবক্সিং সমর্থন করে।
প্রধান Wrapper ক্লাসসমূহ:
Integer:
Integerক্লাসintপ্রিমিটিভ ডেটা টাইপের জন্য অবজেক্ট হিসেবে কাজ করে।- এটি
intমান সংরক্ষণ এবং বিভিন্ন পদ্ধতির মাধ্যমে অপারেশন পরিচালনা করতে সাহায্য করে (যেমন পার্সিং, মিথডগুলি, ইত্যাদি)।
উদাহরণ:
Integer intObj = 10; // Auto-boxing int i = intObj; // Auto-unboxing System.out.println("Integer value: " + intObj); System.out.println("int value: " + i);Double:
Doubleক্লাসdoubleপ্রিমিটিভ ডেটা টাইপের জন্য ব্যবহার করা হয়। এটিdoubleমান ধারণ এবং প্রসেস করতে ব্যবহৃত হয়।- এই ক্লাসটি সাধারণত দশমিক সংখ্যার মান সংগ্রহ করতে ব্যবহৃত হয় এবং এর মধ্যে গাণিতিক অপারেশন যেমন যোগ, বিয়োগ, গুণ, ভাগ ইত্যাদি করা যায়।
উদাহরণ:
Double dObj = 20.5; // Auto-boxing double d = dObj; // Auto-unboxing System.out.println("Double value: " + dObj); System.out.println("double value: " + d);Boolean:
Booleanক্লাসbooleanপ্রিমিটিভ ডেটা টাইপের জন্য ব্যবহৃত হয়। এটিtrueবাfalseমান ধারণ করে এবং Boolean অপারেশন যেমন লজিক্যাল AND, OR, NOT ইত্যাদি পরিচালনা করতে ব্যবহার করা হয়।Boolean.parseBoolean(String)এবংBoolean.valueOf(String)এর মাধ্যমে স্ট্রিং মানকে Boolean মানে কনভার্ট করা যায়।
উদাহরণ:
Boolean boolObj = true; // Auto-boxing boolean bool = boolObj; // Auto-unboxing System.out.println("Boolean value: " + boolObj); System.out.println("boolean value: " + bool);Character:
Characterক্লাসcharপ্রিমিটিভ ডেটা টাইপের জন্য ব্যবহৃত হয়। এটি একটি একক ক্যারেক্টার ধারণ করে এবং ক্যারেক্টারের উপর বিভিন্ন কার্যক্রম যেমনisDigit(),isLetter(),toUpperCase()ইত্যাদি সমর্থন করে।
উদাহরণ:
Character charObj = 'A'; // Auto-boxing char c = charObj; // Auto-unboxing System.out.println("Character value: " + charObj); System.out.println("char value: " + c);
প্রধান Wrapper ক্লাসের ফিচার এবং মেথড:
- Auto-boxing:
- এটি একটি প্রিমিটিভ ডেটা টাইপকে তার সমতুল্য Wrapper ক্লাসের অবজেক্টে রূপান্তরিত করার প্রক্রিয়া।
উদাহরণ:
Integer obj = 5; // int value 5 is automatically converted to Integer object
- Auto-unboxing:
- এটি Wrapper ক্লাসের অবজেক্টকে তার প্রিমিটিভ ডেটা টাইপে রূপান্তরিত করার প্রক্রিয়া।
উদাহরণ:
int num = obj; // Integer object is automatically converted to int
প্রিমিটিভ ডেটা টাইপ থেকে অবজেক্টে রূপান্তর (ValueOf):
Integer.valueOf(int),Double.valueOf(double),Boolean.valueOf(String)ইত্যাদি মেথডগুলি প্রিমিটিভ টাইপকে Wrapper ক্লাসে রূপান্তর করতে ব্যবহৃত হয়।
উদাহরণ:
Integer intObj = Integer.valueOf(100);স্ট্রিং থেকে প্রিমিটিভ ডেটা টাইপে রূপান্তর (Parse):
Integer.parseInt(String),Double.parseDouble(String)ইত্যাদি মেথড স্ট্রিংকে সংশ্লিষ্ট প্রিমিটিভ ডেটা টাইপে রূপান্তর করতে ব্যবহৃত হয়।
উদাহরণ:
int num = Integer.parseInt("123"); double price = Double.parseDouble("45.67");- বিভিন্ন মান পরীক্ষা (Constants):
Boolean.TRUE,Boolean.FALSE,Character.MIN_VALUEইত্যাদি Wrapper ক্লাসে বিভিন্ন কনস্ট্যান্ট ডিফাইন করা থাকে যা প্রাসঙ্গিক মান গুলি ধারণ করে।
Wrapper ক্লাসের ব্যবহার এবং প্রয়োজনীয়তা:
- Generics:
- Java Generics শুধুমাত্র অবজেক্ট টাইপের সঙ্গে কাজ করে, তাই
intবাcharএর মতো প্রিমিটিভ টাইপ ব্যবহৃত হতে পারে না। এ কারণে, Wrapper ক্লাসগুলি ব্যবহার করতে হয়, যেমনList<Integer>,List<Character>ইত্যাদি।
- Java Generics শুধুমাত্র অবজেক্ট টাইপের সঙ্গে কাজ করে, তাই
- Collections Framework:
- Java Collection Framework (যেমন
List,Set,Map) শুধুমাত্র অবজেক্ট টাইপের সঙ্গে কাজ করে, তাই সেখানে প্রিমিটিভ ডেটা টাইপ ব্যবহৃত হতে পারে না। Wrapper ক্লাসের সাহায্যে আপনি সেগুলিকে ব্যবহার করতে পারেন।
- Java Collection Framework (যেমন
- Null Handling:
- প্রিমিটিভ টাইপে
nullমান সম্ভব নয়, কিন্তু Wrapper ক্লাসেnullব্যবহার করা সম্ভব, যেটি বিশেষত ডেটাবেস বা সার্ভার কমিউনিকেশনে প্রয়োজনে কাজে আসে।
- প্রিমিটিভ টাইপে
Java তে Wrapper ক্লাস (যেমন Integer, Double, Boolean, Character) প্রিমিটিভ ডেটা টাইপগুলির জন্য অবজেক্ট তৈরি করতে ব্যবহৃত হয়। এগুলি অটো-বক্সিং এবং আনবক্সিং সমর্থন করে এবং Java এর Generics এবং Collections Framework-এ কার্যকরীভাবে ব্যবহৃত হয়। Wrapper ক্লাসগুলির মাধ্যমে আপনি প্রিমিটিভ টাইপের মানকে অবজেক্ট হিসেবে ব্যবহার করতে পারেন, যা বিভিন্ন API এবং ডেটাবেস কমিউনিকেশনে অত্যন্ত উপকারী।
Read more